#!/usr/bin/env bash
###################################################################
# Function :CentOS7.X install|uninstall|version java              #
# Platform :RedHatEL7.x Based Platform                            #
# Version  :1.0                                                   #
# Date     :2021-02-01                                            #
# Author   :houxiaoshuai                                          #
# Contact  :houxiaoshuai@baidu.com & hxsaj@126.com                #
# Company  :                                                      #
# depend on:                                                      #
###################################################################
# 说明：此脚本自动安装java
# ====== 变量定义 ======
# （按需修改）二进制安装包名字
#JAVA_BIN_PACKAGE=/root/drds_deploy/drds_soft/java/jdk-8u51-linux-x64.gz
# （按需修改）安装路径
#JAVA_DEPLOY_DIR=/usr/local/java
# （不建议改）环境变量写入的主文件
#PROFILE_NAME=/etc/profile.d/java_env.sh



# ------ 检测 JAVA 版本函数  ------
function java_version(){
    if java -version >/dev/null 2>&1 ; then
        JAVA_VERSION=$(java -version 2>&1 |awk 'NR==1{ gsub(/"/,""); print $3 }')
        echo ${JAVA_VERSION}
    else
        echo "[ ERROR ] No Java program found! "
        return 1
    fi
}
# ------ 安装 JAVA 函数 ------
function java_install(){
    #  二进制包位置
    jdk_pkg="${1}"
    #  指定部署位置
    java_deploy_dir="${2}"
    #  版本
    jdk_version="${3}"
    # 检查/etc/bashrc是否已经有jdk1.8版本，存在将不再安装
    cat /etc/bashrc | grep "export JAVA_HOME" | grep ${jdk_version} > /dev/null
    if [[ $? == 0 ]]; then
        echo "[ INFO ] JDK 1.8 已安装"
    else
    # 解压 jdk 二进制包 到 部署路径 下
        [ ! -d ${JAVA_DEPLOY_DIR} ] && mkdir -p ${JAVA_DEPLOY_DIR}
        tar -zxf ${JAVA_BIN_PACKAGE} -C ${JAVA_DEPLOY_DIR}
    # 写入环境变量
        #sed -i "s#JAVA_HOME=deploydir#JAVA_HOME=${JAVA_HOME}#g" ${PROFILE_TEM} &&cp ${PROFILE_TEM} ${PROFILE_NAME}
        JDK_DIR=${JAVA_DEPLOY_DIR}/$(ls -t /usr/local/java|head -1)
        [ ! -f ${PROFILE_NAME} ] && touch ${PROFILE_NAME}
        echo -e "export JAVA_HOME=${JDK_DIR}"         > ${PROFILE_NAME}
        echo    'export CLASSPATH=${JAVA_HOME}/lib'  >> ${PROFILE_NAME}
        echo    'export PATH=${JAVA_HOME}/bin:$PATH' >> ${PROFILE_NAME}
    fi
}
# ------ 卸载 JAVA 函数 ------
function java_uninstall(){
    # 删除 java 二进制包部署目录
    [ -d ${JAVA_HOME} ] && rm ${JAVA_HOME} -rf
    # 删除环境变量
    rm ${PROFILE_NAME} -f
    # 卸载 yum 安装的java（注意，脚本的名字不能修改为 java 开头，脚本如果为 java 开头会导致 yum remove java* 命令执行失败
    [ $(rpm -qa |grep java|wc -l) -gt 0 ] && yum remove java* -y >/dev/null 2>&1

    # 判断是否还有java程序
    $(java -? >/dev/null 2>&1) || show_tips "Remove java done! "
}


main(){
    # 选择
    case S"${1}" in
    Sversion   ) java_version                                                  ;;
    Sinstall   ) java_install    && source /etc/profile                        ;;
    Suninstall ) java_uninstall  ;  source /etc/profile                        ;;
    S*         ) show_warning "Usage: $0 {version|install|uninstall}" &&exit 1 ;;
    esac
}

main "$@"